package com.bzkj.basicinfo.domain.warehouse.dto;

import lombok.Data;

import java.util.List;

/**
 * 码关系查询响应DTO
 * 
 * @author lixinyu
 * @date 2025-06-30
 */
@Data
public class CodeRelationResponseDto {
    
    private AlibabaAlihealthDrugCodeKytWesQuerycoderelationResponse alibaba_alihealth_drug_code_kyt_wes_querycoderelation_response;
    
    @Data
    public static class AlibabaAlihealthDrugCodeKytWesQuerycoderelationResponse {
        private Result result;
        private String request_id;
    }
    
    @Data
    public static class Result {
        private ModelList model_list;
        private String msg_code;
        private String msg_info;
        private Boolean response_success;
    }
    
    @Data
    public static class ModelList {
        private List<CodeRelationDto> code_relation_dto;
    }
    
    @Data
    public static class CodeRelationDto {
        private BaseInfosDto base_infos_d_t_o;
        private String code;
        private CodeActiveInfoDto code_active_info_d_t_o;
        private CodeRelationList code_relation_list;
        private String is_smallest;
        private PkgInfoDto pkg_info_d_t_o;
        private ProduceInfoList produce_info_list;
    }
    
    @Data
    public static class BaseInfosDto {
        private BaseInfoList base_info_list;
    }
    
    @Data
    public static class BaseInfoList {
        private List<BaseInfoDto> base_info_dto;
    }
    
    @Data
    public static class BaseInfoDto {
        private String approval_licence_date;
        private String approval_licence_expiry;
        private String approval_licence_no_old;
        private String approve_no;
        private String exprie_date;
        private String physic_info;
        private String physic_name;
        private String physic_type;
        private String pkg_ratio;
        private String pkg_spec;
        private String prepn_spec;
        private String prepn_type;
        private String prod_id;
        private String produce_batch_no;
        private String produce_date;
        private String product_code;
        private String ref_ent_id;
        private String sub_type_no;
    }
    
    @Data
    public static class CodeActiveInfoDto {
        private Integer active_count;
        private String active_date;
        private String code_active_info_id;
        private String crt_date_string;
        private String oper_ic_code;
        private Integer other_num;
        private String process_count;
        private String process_date;
        private String process_end_date;
        private String process_flag;
        private String relation_type;
        private Integer small_num;
        private String upload_file_name;
        private String upload_file_path;
    }
    
    @Data
    public static class CodeRelationList {
        private List<CodeInfo> code_info;
    }
    
    @Data
    public static class CodeInfo {
        private String code;
        private String code_level;
        private String code_pack_level;
        private String parent_code;
        private String status;
    }
    
    @Data
    public static class PkgInfoDto {
        private CodeList code_list;
    }
    
    @Data
    public static class CodeList {
        private List<String> string;
    }
    
    @Data
    public static class ProduceInfoList {
        private List<ProduceInfoDto> produce_info_dto;
    }
    
    @Data
    public static class ProduceInfoDto {
        private String authrizer_ent_id;
        private String batch_no;
        private String code;
        private String expire_date;
        private String pkg_amount;
        private String produce_date;
        private String produce_ent_id;
    }
}
